Video hosting services such as YOUTUBE allow users to post videos. Most video hosting services transcode an original source video from its native encoded format (e.g., .MOV) into a different format (e.g., Adobe Flash or Windows Media Video (.WMV)). Transcoding comprises decoding the source video from its original format into an unencoded representation using a decoder for the original format and then encoding the unencoded representation with an encoder for the new format. Transcoding can be used to reduce storage requirements, and also to reduce the bandwidth requirements for serving the video to clients.
One challenge in designing a video coding system for video hosting services with millions of videos is to transcode and to store the videos with acceptable visual quality with reasonable transcoding latency. Transcoding a video sequentially by a dedicated video transcoder in conventional video coding systems incurs long latency and the transcoding latency increases with videos with high resolution, bit rate, frame rate, longer duration or higher quality. For example, transcoding a three-minute video to a video in high-definition (HD) format by a single video transcoder may take 30 to 35 minutes. The long transcoding latency can further delay downstream processing (e.g., video analysis, or streaming) leading to a deteriorated user experience.
Another aspect of the challenge faced by the conventional video transcoders is that source videos have a variety of coding parameters (e.g., resolution, frame rate, bitrate) and video content. However, conventional video transcoders typically ignore the impact of video content and coding complexity on transcoding. Transcoding a video without considering the impact of video content and complexity on transcoding can degrade video quality and user experience.